package com.rbac.mapper;

import com.rbac.entity.SysPermission;
import com.rbac.vo.PermissionVO;
import org.apache.ibatis.annotations.Mapper;

import java.util.List;

@Mapper
public interface PermissionMapper {
    
    /**
     * 根据权限编码查询权限
     */
    SysPermission selectByPermissionCode(String permissionCode);
    
    /**
     * 根据ID查询权限
     */
    SysPermission selectById(Long id);
    
    /**
     * 查询权限列表
     */
    List<PermissionVO> selectPermissionList(com.rbac.dto.PermissionQueryDTO queryDTO);
    
    /**
     * 查询所有权限（用于下拉选择）
     */
    List<SysPermission> selectAllPermissions();
    
    /**
     * 新增权限
     */
    int insert(SysPermission permission);
    
    /**
     * 更新权限
     */
    int update(SysPermission permission);
    
    /**
     * 删除权限
     */
    int deleteById(Long id);
    
    /**
     * 根据权限ID查询父权限名称
     */
    String selectParentNameByPermissionId(Long permissionId);

    /**
     * 统计权限总数
     */
    long countAll();
} 